const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { resolve } = require('path');
module.exports = function(env, argv) {
    console.log('进入配置', env)
    env = env || {};
    let conf = null;

    if (env.production) {
        conf = require('./config/webpack.production');
    } else if (env.development) {
        conf = require('./config/webpack.development');
    } else {
        console.log("未输入配置，请检查命令")
    }

    return {
        ...conf,
        // mode: 'development',
        entry: {
            index: './src/js/index.js',
            self: './src/js/self.js'
        },
        context: path.resolve(__dirname),
        module: {
            noParse: /jquery/, //优化：不去检测jquery中是否还有依赖（因jquery就是单独的模块）

            rules: [{
                    test: /\.css$/i,
                    exclude: /node_modules/, //默认webpack也会去找node_modules中的文件，排除后可以优化打包时间
                    use: [
                        MiniCssExtractPlugin.loader,
                        'css-loader',
                        'postcss-loader'
                    ],
                },
                {
                    test: /\.s[ac]ss$/i,
                    exclude: /node_modules/, //默认webpack也会去找node_modules中的文件，排除后可以优化打包时间
                    use: [
                        MiniCssExtractPlugin.loader,
                        "css-loader",
                        "sass-loader",
                    ],
                },
                {
                    test: /\.(js|jsx)$/i,
                    exclude: /node_modules/, //默认webpack也会去找node_modules中的文件，排除后可以优化打包时间
                    include: resolve('src'),
                    use: {
                        loader: 'babel-loader',
                        options: {
                            presets: ['@babel/preset-env']
                        }
                    }
                },
                // {
                //     test: /\.(js|jsx)$/i,
                //     loader: 'eslint-loader',
                //     exclude: '/node_modules/', //排除被eslint的文件
                //     // options: {
                //     //     enforce: 'pre', //设置在所有普通loader之前执行

                //     // },
                //     options: {

                //     }
                // },
                {
                    test: /\.(png|svg|jpg|jpeg|gif)$/i,
                    exclude: /node_modules/, //默认webpack也会去找node_modules中的文件，排除后可以优化打包时间
                    use: {
                        loader: 'url-loader',
                        options: {
                            outputPath: 'img/', //存放路径：相对于output 中的路径
                            // publicPath: '../../dist/img/', //页面中显示的url：z这个有问题
                            publicPath: '../img/', //页面中显示的url：
                            limit: 0 * 1024 //8K   大于这个，用file-load那套，小于，用base64编码存
                        }
                    }
                },

            ],
        },

    }

};